﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SStuff.MetaEffects.Model
{
    public class float3
    {
        public const float3 Default = null;
        public float x { get; set; }
        public float y { get; set; }
        public float z { get; set; }

        public float2 xy { get; set; }
        public float2 yz { get; set; }
        public float2 xz { get; set; }

        public float3(float value)
        {
        }
        public float3(float x, float y, float z)
        {
        }
        public float3(float2 xy, float z)
        {
        }
        public float3(float x, float2 yz)
        {
        }

        public static float3 operator +(float3 left, float3 right)
        {
            return null;
        }
        public static float3 operator -(float3 left, float3 right)
        {
            return null;
        }
        public static float3 operator -(float3 left, float right)
        {
            return null;
        }

        public static float3 operator -(float left, float3 right)
        {
            return null;
        }

        public static float3 operator +(float3 left, float right)
        {
            return null;
        }

        public static float3 operator *(float3 left, float right)
        {
            return null;
        }

        public static float3 operator *(float left, float3 right)
        {
            return null;
        }

        public static float3 operator *(float3 left, float3 right)
        {
            return null;
        }

        public static float3 operator /(float3 left, float right)
        {
            return null;
        }

        public static float3 operator /(float left, float3 right)
        {
            return null;
        }

        public static float3 operator /(float3 left, float3 right)
        {
            return null;
        }

        [HlslFunction("dot({this}, {other})")]
        public float dot(float3 other)
        {
            return 0;
        }


        [HlslFunction("mul({this}, {matrix})")]
        public float3 mul(float3x3 matrix)
        {
            return null;
        }
    }
}
